﻿#include <stdio.h>

/* 잘못짠 코드인데 참고용으로 남겨둠
int CheckOutLenOfFirstNum(char input)
{
    int a;
	char arrin[100]=input;
         for(a=0; a<(sizeof(arrin)+1); a++)
         {
             if(arrin[a] == '+' || arrin[a] == '-' || arrin[a] == '*' || arrin[a] == '/')
             break;
         }  
    return 0;
}
*/
int PowerOf10(int m){		//재귀함수를 이용하여 10의 n승 구현.
							//line 54-72 를 간추릴 수 있을 듯.
	if(m==1)
	 return 10;
	else
	 return 10*PowerOf10(m-1);
	 
}
    
int SizeOfInput(char *ptr)
{
	int a=0;
	while(a<100)
	{
		 if(ptr[a] == '+' || ptr[a]= '-' || ptr[a]= '*' || ptr[a]= '/') // ver[1.2] 수정
			 break;
		 else if(ptr[a] == '\0')
			 printf("연산자가 없습니다.");
		 else
			 a++;
	}
	return a+1;
}

	
int CheckOutFirstNum(char *input, int len)
{
    int a, b;
	int result=0;
	int lenbac=len;
    int letter[10];
    
    for(a=0; a<len; a++)
	{
		for(; len>0; len--)
		{
			switch(len)
			{
				case 1:
					b=1;
					break;
				case 2:
					b=10;
					break;
				case 3:
					b=100;
					break;
				case 4:
					b=1000;
					break;
				case 5:
					b=10000;
					break;
				case 6:
					b=100000;
					break;
				default:
					printf("\n계산이 불가능한 큰 수 입니다.");
			}

			letter[a]=input[a]*b;//여기가 제일 문제인 부분임. char 형 배열의 아스키 코드 값과 int형 배열의 정수가 곱해지는 현상.
			//이런 방식이 아니라 자료구조 스택, 후위연산 등이 사용되야 한다는 생각이 강력히 들고 있음.
		}
	}

	for(a=0; a<lenbac; a++)
		result += letter[a];

	return result;
}


	void StartCal (void)
	{
		int numlen1, /*numlen2,*/ numpart1; /*numpart2;*/
		char arrin[50];
		printf("계산기입니다. 숫자를 입력해주세요\n<ex: 10+10>\n<공백은 없이>\n");
		scanf("%s", arrin);

		numlen1 = SizeOfInput(arrin);

		numpart1 = CheckOutFirstNum(arrin, numlen1);

		printf("%d", numpart1);
		return;
	}


		




int main (void)
{
    StartCal();//아직 완성되지 않은 코드라 그냥 StartCal 함수의 작동만을 확인하기 위해서.
	return 0;
}
